package com.liuyanzhao.blog.service;

import java.util.List;

import com.liuyanzhao.blog.entity.Tag;
import com.liuyanzhao.blog.entity.custom.ArticleListVo;
import com.liuyanzhao.blog.entity.custom.TagCustom;

/**
 * 
 * @author Baokai Wang
 * 对标签表的操作
 * @CrateTime: 2019年6月23日
 */
public interface TagService {
	
	/**
	 * 
	 * 获得标签总数
	 * @param status
	 * @return Integer
	 * @throws Exception
	 * @author Baokai Wang
	 * @CreateDate: 2019年6月23日 下午8:34:37
	 */
	public Integer countTag(Integer status) throws Exception;
	
	/**
	 * 
	 * 获得标签列表
	 * @param status
	 * @return List<TagCustom>
	 * @throws Exception
	 * @author Baokai Wang
	 * @CreateDate: 2019年6月23日 下午8:34:40
	 */
	public List<TagCustom> listTag(Integer status) throws Exception;

	/**
	 * 
	 * 获得含有该标签的文章列表
	 * @param status
	 * @param pageNow
	 * @param pageSize
	 * @param tagId
	 * @return List<ArticleListVo>
	 * @throws Exception
	 * @author Baokai Wang
	 * @CreateDate: 2019年6月23日 下午8:34:43
	 */
	public List<ArticleListVo> getArticleListByPage(Integer status,Integer pageNow, Integer pageSize,Integer tagId) throws Exception;

	/**
	 * 
	 * 根据id获得标签信息
	 * @param id
	 * @return TagCustom
	 * @throws Exception
	 * @author Baokai Wang
	 * @CreateDate: 2019年6月23日 下午8:35:31
	 */
	public TagCustom getTagById(Integer id) throws Exception;

	/**
	 * 
	 * 添加标签
	 * @param tag
	 * @throws Exception
	 * @author Baokai Wang
	 * @CreateDate: 2019年6月23日 下午8:35:46
	 */
	public void insertTag(Tag tag) throws Exception;

	/**
	 * 
	 * 修改标签
	 * @param tag
	 * @throws Exception
	 * @author Baokai Wang
	 * @CreateDate: 2019年6月23日 下午8:36:00
	 */
	public void updateTag(Tag tag) throws Exception;

	/**
	 * 
	 * 删除标签
	 * @param id
	 * @throws Exception
	 * @author Baokai Wang
	 * @CreateDate: 2019年6月23日 下午8:36:12
	 */
    public void deleteTag(Integer id) throws Exception;

    /**
     * 
     * 根据标签名获取标签
     * @param name
     * @return Tag
     * @throws Exception
     * @author Baokai Wang
     * @CreateDate: 2019年6月23日 下午8:36:22
     */
	public Tag getTagByName(String name) throws Exception;

}
